home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antdesig
/
filter.bas
< prev
next >
Wrap
BASIC Source File
|
1986-08-02
|
9KB
|
291 lines
10 CLS
20 REM*******************************
30 PRINT
40 REM DESIGNS INTERDIGITAL FILTERS
50 REM HAM RADIO JANUARY 1985
60 REM*******************************
70 PRINT
80 DEF FNRJ(TA,B,C,D)=(B*C-TA*D)/(C*C+D*D)
90 REM G VALUES BASED ON RIPPLE BW . Q/COUP ON 3-BD
100 REM USING EQUAL DIAMETER RODS
110 DIM G(200) , C(200) , RK(200) , AK(200) , FR(40) , ALOSS(40)
120 DIM A(200) , B(200)
130 PI=3.14159265#
140 PRINT
150 PRINT
160 PRINT"DIMENSIONS IN INCHES"
170 PRINT
180 INPUT"# OF ELEMENTS & P-P RIPPLE IN PASSBAND (DB)";N,RIP
190 REM
200 INPUT"INPUT FILTER CENTER FREQ. (GHZ) ,BW (MHZ) & LOAD IMPEDANCE Zo. ";FZGC,BWMC,R
210 REM
220 PRINT "INPUT GROUND PLANE SPACING , ROD DIAMETER"
230 INPUT "&DISTANCE TO CENTER OF FIRST AND LAST ROD ";H,D,E
240 REM
250 INPUT"No. OF FREQ. REJECTION PTS AND STEP SIZE (MHZ)";NFR,STP
260 PRINT
270 PRINT" CALCULATION PROCEEDING PLEASE WAIT"
280 PRINT
290 FOR IP=-NFR/2 TO NFR/2
300 COUNTER=COUNTER+1
310 FR(COUNTER)=FZGC+(STP*.001*IP)
320 NEXT IP
330 IDAT=1
340 GOTO 350
350 F1=FZGC-.0005*BWMC
360 F2=FZGC+.0005*BWMC
370 IF RIP>0 THEN GOTO 430
380 BW3GC=F2-F1
390 BWRGC=0
400 BW3=1
410 GOSUB 2070
420 GOTO 490
430 B=1/SQR(10^(.1*RIP)-1)
440 CA=LOG(B+SQR(B*B-1))/(N)
450 BW3=(EXP(CA)+EXP(-CA))/2
460 GOSUB 1860
470 BWRGC=F2-F1
480 BW3GC=BWRGC*BW3
490 REM
500 W=2*(F2-F1)/(F2+F1)
510 QF=FZGC/BW3GC
520 NFM=N-1
530 QWVL=11.8028/(4*FZGC)
540 FOR K=1 TO NFM
550 AK(K)=1/(BW3*SQR(G(K)*G(K+1)))
560 RK(K)=AK(K)/QF
570 NEXT K
580 AKO=G(1)*BW3
590 AK(N)=AKO
600 AK(N+1)=0
610 QS=G(1)*BW3*QF
620 CANH=(EXP(2*PI*E/H)-1)/(EXP(2*PI*E/H)+1)
630 ZM=59.9585*LOG(4*H/(PI*D))
640 ZE=59.9585*LOG(CANH*H*4/(PI*D))
650 RKM=RK(1)*SQR(ZM/ZE)
660 Z=PI*D/(2*H)
670 COTH=(EXP(Z)+1)/(EXP(Z)-1)
680 Y=PI*RKM/4
690 T=COTH^Y
700 C(1)=(H/PI)*LOG((T+1)/(T-1))
710 MFL=N-2
720 REM IF N-3<0 THEN AG=1 ELSE IF N-1=0 THEN AG=2 ELSE AG=3
730 ON (2+SGN(N)*1) GOTO 790 , 790 , 740
740 FOR K=2 TO MFL
750 Y=PI*RK(K)/4
760 T=COTH^Y
770 C(K)=(H/PI)*LOG((T+1)/(T-1))
780 NEXT K
790 C(N-1)=C(1)
800 X=SQR(PI*R/(4*ZE*QS))
810 AQ=2*QWVL*ATN(X/SQR(1-X*X))/PI
820 QU=2200*H*SQR(FZGC)
830 SUMG=0
840 FOR J1=1 TO N
850 SUMG=SUMG+G(J1)
860 NEXT J1
870 BLOSS=4.34*FZGC*SUMG/(QU*(F2-F1))
880 DELAY=SUMG/(2*PI*(F2-F1))
890 IF RIP > 0 THEN GOTO 920
900 PRINT"DESIGN DATA FOR ";N;" POLE INTERDIGITAL FILTER. BUTTERWORTH RESPONSE"
910 GOTO 930
920 PRINT "DESIGN DATA FOR ";N;" POLE INTERDIGITAL FILTER . BAND PASS RIPPLE ";RIP;" DB"
930 PRINT"CENTER FREQ. ";FZGC ;" GHZ"
940 PRINT"CUTOFF FREQ. ";F1;" GHZ AND ";F2;" GHZ"
950 PRINT" RIPPLE BW. ";BWRGC;" GHZ"
960 PRINT" 3 DB BW. ";BW3GC;" GHZ"
970 PRINT"FRACTIONAL BW ";W
980 PRINT" FILTER Q ";QF
990 PRINT" EST QU ";QU
1000 PRINT"LOSS BASED ON QU ";BLOSS;" DB"
1010 PRINT"DELAY AT BAND CENTER ";DELAY;" NANOSECONDS"
1020 FOR JK=1 TO NFR
1030 IF JK=1 THEN PRINT "FREQUENCY REJECTION INFORMATION "
1040 NFN=ABS(2*(FR(JK)-FZGC)/(W*FZGC))
1050 IF RIP >0 THEN GOTO 1080
1060 ALOSS(JK)=10*LOG(1+NFN^(2*N))/LOG(10)
1070 GOTO 1120
1080 IF NFN<1 THEN NFN=1
1090 ANG=N*LOG(NFN+SQR(NFN*NFN-1))
1100 YAK=.5*(EXP(ANG)+EXP(-ANG))
1110 ALOSS(JK)=10*LOG(1+(10^(.1*RIP)-1)*YAK*YAK)/LOG(10)
1120 IF ALOSS(JK)>65 THEN ALOSS=65 ELSE ALOSS = ALOSS(JK)
1130 FR=INT(FR(JK)*10000)/10000 :ALOS=INT(ALOSS(JK))
1140 PRINT TAB( INT(ALOSS))"*";TAB(66)FR;TAB(73)ALOS
1150 NEXT JK
1160 WO=2*PI*FZGC*1E+09
1170 F=D/H
1180 CF=(-.0000422+.0857397*F+.0067853*F*F-.0909217*F^3+.169088*F^4)*PI*H*2.54
1190 REM
1200 WW=WO*1E-12
1210 B2=PI*AQ/(2*QWVL)
1220 GG=1/R
1230 BB=-COS(B2)/(ZE*SIN(B2))
1240 EL1=.8*QWVL
1250 ANG=EL1*PI/(2*QWVL)
1260 B1=ANG-B2
1270 YL= - COS(ANG)/(ZM*SIN(ANG))
1280 CP=WW*(CF+.17655*D*D/(QWVL-EL1))
1290 Y1=CP+YL
1300 EL2=.87*QWVL
1310 ANG=EL2*PI/(2*QWVL)
1320 B4=ANG-B2
1330 YL=-COS(ANG)/(ZM*SIN(ANG))
1340 CD=WW*(CF+.17655*D*D/(QWVL-EL2))
1350 Y2=CD+YL
1360 EL3=.95*QWVL
1370 ANG=EL3*PI/(2*QWVL)
1380 B5=ANG-B2
1390 YL=-COS(ANG)/(ZM*SIN(ANG))
1400 CQ=WW*(CF+.17655*D*D/(QWVL-EL3))
1410 Y3=CQ+YL
1420 ELEM=Y3*Y2*EL1/((Y1-Y2)*(Y1-Y3))+Y1*Y3*EL2/((Y2-Y1)*(Y2-Y3))+Y1*Y2*EL3/((Y3-Y1)*(Y3-Y2))
1430 TANN=SIN(B1)/COS(B1)
1440 YL=FNRJ(GG,BB+TANN/ZE,1-ZE*BB*TANN,ZE*GG*TANN)
1450 Y1=CP+YL
1460 TANN=SIN(B4)/COS(B4)
1470 YL=FNRJ(GG,BB+TANN/ZE,1-ZE*BB*TANN,ZE*GG*TANN)
1480 Y2=CD+YL
1490 TANN=SIN(B5)/COS(B5)
1500 IF ALOSS(JK) > 65 THEN ALOSS = 65 ELSE ALOSS = ALOSS(JK)
1510 FR = INT(FR(JK)*10000)/10000:ALOS = INT(ALOSS(JK))
1520 YL=FNRJ(GG,BB+TANN/ZE,1-ZE*BB*TANN,ZE*GG*TANN)
1530 Y3=CQ+YL
1540 ELEQ=Y3*Y2*EL1/((Y1-Y2)*(Y1-Y3))+Y1*Y3*EL2/((Y2-Y1)*(Y2-Y3))+Y1*Y2*EL3/((Y3-Y1)*(Y3-Y2))
1550 REM
1560 PRINT"QUATER WAVELENGTH =";QWVL ;" INCHES"
1570 PRINT"THE LENGTH OF THE INTERIOR ELEMENTS =";ELEM;" INCHES"
1580 PRINT" LENGTH OF END ELEMENTS =";ELEQ;" INCHES"
1590 PRINT" GROUND PLANE SPACE =";H;" INCHES"
1600 PRINT" ROD DIAMETER =";D;" INCHES"
1610 PRINT" END PLATES ";E;" INCHES FROM C/L OF END ROD"
1620 PRINT"TAP EXTERNAL LINES UP ";AQ;" INCHES FROM SHORTED END "
1630 PRINT"LINE IMPEDANCES: END ROD ";ZE;" ,OTHER ";ZM;" , EXT. LINES ";R;" OHM"
1640 PRINT"DIMENSIONS"
1650 PRINT"EL.No. END TO C C TO C G(K) Q/COUP
1660 DOM=E
1670 GOO=1
1680 PRINT "0";TAB(41)GOO;TAB(55)AKO
1690 PRINT "1";TAB(16)E;TAB(41)G(1);TAB(55)AK(1)
1700 FOR K=1 TO NFM
1710 L=K+1
1720 PRINT TAB(28)C(K)
1730 DOM=DOM+C(K)
1740 PRINT L;TAB(16)DOM;TAB(41)G(L);TAB(55)AK(L)
1750 NEXT K
1760 LQ=N+1
1770 PRINT LQ;TAB(41)G(LQ)
1780 DOM=DOM+E
1790 PRINT TAB(16)DOM
1800 IF IDAT = 1 THEN GOTO 2180
1810 REM
1820 REM
1830 REM DEFINE FUNCTION
1840 DEF FNRJ(TA,B,C,D)=(B*C-TA*D)/(C*C+D*D)
1850 END
1860 REM SUB CHEB
1870 REM
1880 C=2*RIP/17.37
1890 BETA=LOG((EXP(C)+1)/(EXP(C)-1))
1900 GAMMA=.5*(EXP(BETA/(2*N))-EXP(-BETA/(2*N)))
1910 FOR K=1 TO N
1920 A(K)=SIN(.5*(2*K-1)*PI/N)
1930 B(K)=GAMMA^2+SIN(K*PI/N)^2
1940 NEXT K
1950 G(1)=2*A(1)/GAMMA
1960 FOR K=2 TO N
1970 G(K)=4*A(K-1)*A(K)/(B(K-1)*G(K-1))
1980 NEXT K
1990 NN=N/2
2000 NNN=(N+1)/2
2010 REM IF NNN-NN<0 THEN AG=1 ELSE IF NNN-NN=0 THEN AG1=2 ELSE AG1=3
2020 ON (2+SGN(NNN-NN)*1) GOTO 2030,2030,2050
2030 G(N+1)=((EXP(BETA/2)+1)/(EXP(BETA/2)-1))^2
2040 RETURN
2050 G(N+1)=1
2060 RETURN
2070 REM SUB FOR BUTT
2080 REM
2090 REM
2100 REM
2110 REM
2120 POV2=1.57079633#
2130 FOR K=1 TO N
2140 G(K)=2*SIN(POV2*(2*K-1)/N)
2150 NEXT K
2160 G(N+1)=1
2170 RETURN
2180 INPUT" IS HARD COPY REQUIRED ";HC$
2190 IF HC$ = "Y" OR HC$ = "y" THEN GOTO 2240
2200 IF HC$ = "N" OR HC$ = "n" THEN GOTO 150
2210 PRINT" PLEASE ANSWER Y OR N"
2220 GOTO 2180
2230 PRINT;PRINT;PRINT;PRINT;PRINT
2240 IF RIP > 0 THEN GOTO 2270
2250 LPRINT"DESIGN DATA FOR ";N;" POLE INTERDIGITAL FILTER. BUTTERWORTH RESPONSE"
2260 GOTO 2280
2270 LPRINT"DESIGN DATA FOR ";N;" POLE INTERDIGITAL FILTER. BAND-PASS RIPPLE ";RIP;" DB"
2280 LPRINT
2290 LPRINT" CENTER FREQ. ";FZGC;" GHZ"
2300 LPRINT" CUTOFF FREQ. ";F1;" GHZ AND ";F2;" GHZ."
2310 LPRINT" RIPPLE B.W. ";BWRGC;" GHZ"
2320 LPRINT" 3DB B.W. ";BW3GC;" GHZ"
2330 LPRINT"FRACTIONAL BW ";W
2340 LPRINT" FILTER Q ";QF
2350 LPRINT" EST QU ";QU
2360 LPRINT"LOSS BASED ON QU ";BLOSS;" DB"
2370 LPRINT"DELAY AT BAND CENTER ";DELAY;" NANOSECONDS"
2380 LPRINT
2390 FOR JK = 1 TO NFR
2400 IF JK = 1 THEN LPRINT" FREQUENCY REJECTION INFORMATION "
2410 LPRINT
2420 NFN=ABS(2*(FR(JK)-FZGC)/(W*FZGC))
2430 IF RIP > 0 THEN GOTO 2460
2440 ALOSS(JK)=10*LOG(1+NFN^(2*N))/LOG(10)
2450 GOTO 2500
2460 IF NFN < 1 THEN NFN = 1
2470 ANG = N*LOG(NFN+SQR(NFN*NFN-1))
2480 YAK = .5*(EXP(ANG)+EXP(-ANG))
2490 ALOSS(JK) = 10*LOG(1+(10^(.1*RIP)-1)*YAK*YAK)/LOG(10)
2500 IF ALOSS(JK) > 65 THEN ALOSS = 65 ELSE ALOSS = ALOSS(JK)
2510 FR = INT(FR(JK)*10000)/10000:ALOS = INT(ALOSS(JK))
2520 LPRINT TAB(INT(ALOSS))"*";TAB(66)FR;TAB(73)ALOS
2530 NEXT JK
2540 LPRINT
2550 LPRINT
2560 LPRINT
2570 LPRINT" QUARTER WAVELENGTH =";QWVL;" INCHES"
2580 LPRINT"LENGTH OF INTERIOR ELEMENTS =";ELEM;" INCHES"
2590 LPRINT"LENGTH OF END ELEMENTS =";ELEQ;" INCHES"
2600 LPRINT" GROUND PLANE SPACE =";H;" INCHES"
2610 LPRINT" ROD DIAMETER =";D;" INCHES"
2620 LPRINT" END PLATES =";E;" INCHES FROM C/L OF END ROD"
2630 LPRINT
2640 LPRINT" TAP EXTERNAL LINES UP ";AQ;" INCHES FROM SHORTED END."
2650 LPRINT
2660 LPRINT" LINE IMPEDANCES:--"
2670 LPRINT" END ROD ";ZE;" OHMS"
2680 LPRINT" OTHER ";ZM;" OHMS"
2690 LPRINT" EXT LINES ";R;" OHMS"
2700 LPRINT
2710 LPRINT" DIMENSIONS :--"
2720 LPRINT
2730 LPRINT" CENTER"
2740 LPRINT"ELEMENT END TO TO COUPLING COEFFICIENTS "
2750 LPRINT"NUMBER CENTER CENTER G(K) Q/COUP "
2760 DOM = E
2770 GOO = 1
2780 LPRINT" 0";TAB(41)GOO;TAB(55)AKO
2790 LPRINT" 1";TAB(16)E;TAB(41)G(1);TAB(55)AK(1)
2800 FOR K = 1 TO NFM
2810 L = K + 1
2820 LPRINT TAB(28)C(K)
2830 DOM = DOM + C(K)
2840 LPRINT L;TAB(16)DOM;TAB(41)G(L);TAB(55)AK(L)
2850 NEXT K
2860 LQ = N + 1
2870 LPRINT LQ;TAB(41)G(LQ)
2880 DOM = DOM + E
2890 LPRINT TAB(16)DOM
2900 RUN "MENU"